﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using FancyIdea.PingShui.Core.Util;

namespace FancyIdea.PingShui.Core.Dal
{
    public class 税务机关和人员操作
    {
        public static bool AddUnit(string 税务机关代码, string 税务机关名称)
        {
            string sql = @"insert into 税务机关表 values ('" + 税务机关代码 + "','" + 税务机关名称 + "')";
            return CmdUtil.ExcuteNonQuery(sql);
        }
        public static bool UpdateUnit(string 税务机关代码, string 税务机关名称)
        {
            string sql = @"update 税务机关表 set 税务机关名称='" + 税务机关名称 + "',税务机关代码='" + 税务机关代码
+ "' where 税务机关代码='" + 税务机关代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }
        public static DataTable GetUnit()
        {
            string sql = @"select * from 税务机关表";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataTable GetUnitDropDown()
        {
            string sql = @"select 税务机关代码 as value,税务机关名称 as text from 税务机关表";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataRow GetUnit(string 税务机关代码)
        {
            string sql = @"select * from 税务机关表 where 税务机关代码='" + 税务机关代码 + "'";
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static string GetUnitByPerson(string 税务人员代码)
        {
            string sql = @"select a.税务机关代码 from 税务机关表 a 
left join 税务人员表 b on b.税务机关代码=a.税务机关代码 
where b.税务人员代码='" + 税务人员代码 + "'";
            try
            {
                return CmdUtil.ExcuteScalar(sql).ToString();
            }
            catch
            {
                return null;
            }
        }

        public static bool DeleteUnit(string 税务机关代码)
        {
            string sql = @"delete from 税务机关表 where 税务机关代码='" + 税务机关代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }
        public static bool DeleteUnit(string[] 税务机关代码)
        {
            return CmdUtil.DeleteMuti("税务机关表", "税务机关代码", 税务机关代码);
        }




        public static bool AddPerson(string 税务机关代码, string 税务人员代码, string 税务人员姓名, string 税务人员性别,
            string 操作密码, string 权限)
        {
            string sql = @"insert into 税务人员表 (税务人员代码,税务人员姓名,税务人员性别,操作密码,税务机关代码,权限) values 
('" + 税务人员代码 + "','" + 税务人员姓名 + "','" + 税务人员性别
    + "','" + Summary.Md5Base64(操作密码) + "','" + 税务机关代码 + "','" + 权限 + "')";
            return CmdUtil.ExcuteNonQuery(sql);
        }
        public static bool UpdatePerson(string 税务机关代码, string 税务人员代码, string 税务人员姓名,
            string 税务人员性别, string 权限)
        {
            string sql = @"update 税务人员表 set 税务人员姓名='" + 税务人员姓名
+ "',税务人员性别='" + 税务人员性别 + "',税务机关代码='" + 税务机关代码
+ "',权限='" + 权限 + "' where 税务人员代码='" + 税务人员代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }
        public static DataRow GetPersonInfo(string 税务人员代码)
        {
            string sql = @"select a.*,b.税务机关名称,b.税务机关代码 from 税务人员表 a 
left join 税务机关表 b on b.税务机关代码=a.税务机关代码 
where a.税务人员代码='" + 税务人员代码 + "'";
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static DataTable GetPersonDropDown()
        {
            string sql = @"select 税务人员代码 as value,税务人员名称 as text from 税务人员表";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataTable GetPerson(string 税务机关代码)
        {
            string sql = @"select a.*,b.税务机关名称,b.税务机关代码 from 税务人员表 a 
left join 税务机关表 b on b.税务机关代码=a.税务机关代码 
where a.税务机关代码='" + 税务机关代码 + "'";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static bool DeletePerson(string 税务人员代码)
        {
            string sql = @"delete from 税务人员表 where 税务人员代码='" + 税务人员代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool DeletePerson(string[] 税务人员代码)
        {
            return CmdUtil.DeleteMuti("税务人员表", "税务人员代码", 税务人员代码);
        }

        public static bool SetPower(string 税务人员代码, string 权限)
        {
            string sql = @"update 税务人员表 set 权限='" + 权限 + "' where 税务人员代码='" + 税务人员代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool CheckPower(string 税务人员代码, string 权限)
        {
            string sql = @"select * from 税务人员表 where 税务人员代码='" + 税务人员代码
                + "' and (权限 like '%" + 权限 + ";%' or 权限 like '%;" + 权限 + "%')";
            try
            {
                return CmdUtil.ExcuteDataTable(sql).Rows.Count > 0;
            }
            catch
            {
                return false;
            }
        }

        public static string GetPower(string 税务人员代码)
        {
            string sql = @"select 权限 from 税务人员表 where 税务人员代码='" + 税务人员代码 + "'";
            try
            {
                return CmdUtil.ExcuteScalar(sql).ToString();
            }
            catch
            {
                return null;
            }
        }

        public static DataRow Login(string 税务人员代码, string 操作密码)
        {
            string sql = @"select a.*,b.税务机关名称 from 税务人员表 a 
left join 税务机关表 b on b.税务机关代码=a.税务机关代码 
where a.税务人员代码='" + 税务人员代码 + "' and a.操作密码='" +
                 Summary.Md5Base64(操作密码) + "'";
            //操作密码 + "'";
//            string sql = @"select a.*,b.税务机关名称 from 税务人员表 a 
//,税务机关表 b where b.税务机关代码=a.税务机关代码 
//and a.税务人员代码='" + 税务人员代码 + "' and a.操作密码='" +
//                 Summary.Md5Base64(操作密码) + "'";
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static DataRow GetLoginState(string 税务人员代码)
        {
            string sql = @"select a.*,b.税务机关名称 from 税务人员表 a 
left join 税务机关表 b on b.税务机关代码=a.税务机关代码 where a.税务人员代码='" + 税务人员代码 + "'";
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static bool CheckUser(string 税务人员代码, string 操作密码)
        {
            string sql = @"select * from 税务人员表 where 税务人员代码='" + 税务人员代码 + "' and 操作密码='" +
                           Summary.Md5Base64(操作密码) + "'";
            try
            {
                return CmdUtil.ExcuteDataTable(sql).Rows.Count > 0;
            }
            catch
            {
                return false;
            }
        }

        public static bool UpdatePassword(string 税务人员代码, string 旧密码, string 新密码)
        {
            string sql = @"update 税务人员表 set 操作密码='" + Summary.Md5Base64(新密码)
                + "' where 税务人员代码='" + 税务人员代码 + "' and 操作密码='" + Summary.Md5Base64(旧密码) + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool ResetPassword(string 税务人员代码, string 新密码)
        {
            string sql = @"update 税务人员表 set 操作密码='" + Summary.Md5Base64(新密码)
                + "' where 税务人员代码='" + 税务人员代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }
    }
}